package main

import "fmt"

func main() {

	// 声明不带缓冲的通道
	//无缓冲无法写入
	//ch1 := make(chan string)

	// 声明10个缓冲通道
	ch2 := make(chan string, 1)

	// 声明只读通道
	//ch3 := make(<-chan string)

	// 声明只写通道
	//ch4 := make(chan<- string)

	ch2 <- "hello"

	//超出缓冲区数量的写入会阻塞
	//ch2 <- "world"

	val := <-ch2

	close(ch2)

	//重复关闭会报错
	//close(ch2)

	//关闭后还是可以读取
	fmt.Println("val:", val)

	//关闭后续写入会报错
	//ch2 <- "world"

}
